SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDCOMP_RETE_I01]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS S.A.                --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---M«dulo               : Empresa                    --*/    
/*---Programa             : Grabaci«n Detalle          --*/    
/*---                       Comp. Retenci½n            --*/    
/*---Script               : tdcaja_p.sql               --*/    
/*---Nombre SP            : SP_TDCOMP_RETE_I01         --*/    
/*---Desarrollado por     : Reynaldo Menacho L.           --*/    
/*---Fecha Creaci«n       : 29/01/2003                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi«n              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Modificado 1 por     :                            --*/    
/*---Fecha Modificaci«n   :                            --*/     
/*---Detalle Modificaci«n :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TDCOMP_RETE_I01                      --*/    
/*---Grant all on SP_TDCOMP_RETE_I01 to public         --*/     
/*---SP_TDCOMP_RETE_I01                                --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR TD_VC_002,     
 @ISCO_USUA_MODI TD_VC_008_USUA,    
 @ISNU_COMP_RETE TD_VC_020,    
 @ISCO_PROV TD_VC_020,    
 @ISCO_BANC TD_VC_003,     
 @ISNU_CNTA_BANC TD_VC_020,    
 @ISCO_CAJA TD_VC_008,    
 @ISAA_BACA TD_VC_004,     
 @ISMM_BACA TD_VC_002,     
 @ISNU_COMP_BACA TD_VC_008,     
 @ISTI_DOCU TD_VC_003,    
 @ISNU_DOCU TD_VC_020,    
 @IDFE_EMIS TD_DT_001,    
 @INIM_TOTA_CONV TD_NU_016_004,    
 @INIM_PAGO_CONV TD_NU_016_004,    
 @INIM_RETE_CONV TD_NU_016_004,    
 @INFA_TIPO_CAMB NUMERIC(9,4),    
 @INIM_TOTA_RETE TD_NU_016_004
--	
As
Declare     
    @VNNU_SECU TD_IN_001,     
    @VSCO_MONE_PAGO TD_VC_003,    

	@VDFE_EMIS TD_DT_001,    
	@VSCO_MONE TD_VC_003,    
	@VNFA_TIPO_CAMB NUMERIC(9,4),    
	@VNIM_COMP_PAGO TD_NU_016_004,    
	@VSCO_MONE_DEFA TD_VC_003,    
	@VSCO_MONE_EXT TD_VC_003,

    @OSTI_DOCU_CRET TD_VC_003    
    
 Begin Tran SP_TDCOMP_RETE_I01    
    
     EXEC SP_TTDOCU_CNTB_Q02 21, @OSTI_DOCU_CRET OUTPUT    
    
     IF LEN(ISNULL(RTRIM(@ISNU_CNTA_BANC), '')) = 0    
        SELECT @VSCO_MONE_PAGO = CO_MONE    
        FROM TMCAJA    
        WHERE CO_EMPR = @ISCO_EMPR    
        AND CO_CAJA = @ISCO_CAJA    
     ELSE    
       SELECT @VSCO_MONE_PAGO = CO_MONE    
       FROM TMCNTA_BANC    
       WHERE CO_EMPR = @ISCO_EMPR    
       AND CO_BANC = @ISCO_BANC    
       AND NU_CNTA_BANC = @ISNU_CNTA_BANC    
           
     Select @VNNU_SECU   = IsNull(MAX(ISNULL(NU_SECU, 0)),0) + 1    
     From   TDCOMP_RETE    
     Where  CO_EMPR = @ISCO_EMPR    
     and    NU_COMP_RETE = @ISNU_COMP_RETE    

-----   	
	SELECT 	@VSCO_MONE_DEFA = CO_MONE_DEFA,
			@VSCO_MONE_EXT  = CO_MONE_EXTR
	FROM TMPARA_TESO
	WHERE CO_EMPR =  @ISCO_EMPR 
    
	SELECT 	@VSCO_MONE 		 = CO_MONE
	FROM TMDOCU_PROV
	WHERE CO_EMPR =  @ISCO_EMPR 
	AND CO_PROV =  @ISCO_PROV 
	AND CO_TIPO_DOCU =  @ISTI_DOCU 
	AND NU_DOCU_PROV =  @ISNU_DOCU 



	SELECT @VNIM_COMP_PAGO = ISNULL(Round(OFITESO.dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_DEFA, @VSCO_MONE, FE_COMP_RETE, @INIM_RETE_CONV, 'V', 'O',	'S', @VSCO_MONE_DEFA, @VSCO_MONE_EXT, FA_TIPO_CAMB), 2) , 0)
	FROM TCCOMP_RETE 
	Where 	CO_EMPR = @ISCO_EMPR    
	  	AND NU_COMP_RETE = @ISNU_COMP_RETE


-----
  IF EXISTS (SELECT CO_EMPR    
  				FROM TDCOMP_RETE    
			  	WHERE CO_EMPR = @ISCO_EMPR    
			  	AND NU_COMP_RETE = @ISNU_COMP_RETE    
			  	AND TI_DOCU = @ISTI_DOCU    
			  	AND NU_DOCU = @ISNU_DOCU)    
  BEGIN    
   	UPDATE TDCOMP_RETE    
  	SET IM_TOTA_CONV = @INIM_TOTA_CONV,    
  		IM_PAGO_CONV = @INIM_PAGO_CONV,    
  		IM_RETE_CONV = @INIM_RETE_CONV,
  		IM_COMP_PAGO = @VNIM_COMP_PAGO,

  		CO_USUA_MODI = @ISCO_USUA_MODI,
  		FE_USUA_MODI = GETDATE()    
  	WHERE CO_EMPR = @ISCO_EMPR    
  	AND NU_COMP_RETE = @ISNU_COMP_RETE    
  	AND TI_DOCU = @ISTI_DOCU    
  	AND NU_DOCU = @ISNU_DOCU    
    
         If @@error <> 0    
                Begin    
                 	Rollback tran    
           			Return    
                End        
  END    
     ELSE    
       BEGIN    
    
           Insert into TDCOMP_RETE (CO_EMPR, NU_COMP_RETE, TI_DOCU, NU_DOCU, NU_SECU, FE_EMIS,    
                       IM_TOTA_CONV, IM_PAGO_CONV, IM_RETE_CONV, IM_COMP_PAGO, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)    
           Values (@ISCO_EMPR, @ISNU_COMP_RETE, @ISTI_DOCU, @ISNU_DOCU, @VNNU_SECU,     
                  @IDFE_EMIS, @INIM_TOTA_CONV, @INIM_PAGO_CONV, @INIM_RETE_CONV, @VNIM_COMP_PAGO, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())    
    
          If @@error <> 0    
                Begin    
                 Rollback tran    
           Return    
                End        
 END    
    
   Update TMDOCU_PROV    
        Set IM_TOTA = @INIM_TOTA_RETE,  
          --  IM_PAGA = @INIM_TOTA_RETE,  
            FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI  
        WHERE CO_EMPR = @ISCO_EMPR     
        And   CO_PROV = @ISCO_PROV    
        And   CO_TIPO_DOCU = @OSTI_DOCU_CRET  
        And   NU_DOCU_PROV = @ISNU_COMP_RETE    
    
      If @@error <> 0    
          Begin    
            Rollback tran    
            Return    
          End      
     
    
Commit Tran    
    
/*-------------------------- Fin ------------------------------*/


GO
